"""
高阶函数：
    函数名理解为变量，函数体(函数对象)。函数名就是指向函数体

    如果一个函数可以接收一个函数作为参数，那么该 函数就是高阶函数。

         A：接收函数作为参数
         B：将一个函数作用返回值。将一个函数返回，能再次被调用被执行。。
"""


def get_sum(x, y):
    return x + y


def test1(a, b, func):
    print(func(a, b))


# ----------

test1(1, 2, get_sum)


# 第二种,

def test2():
    return lambda x, y: x + y


la = lambda x, y: x + y

print(type(test2()))
# print(test2()(2, 3))   --> la(2,3)
print(la(2, 3))


def test3():
    return la


def test4():
    return get_sum


print('*' * 30)
print(type(test4()))
print(test4()(2, 3))
print(get_sum(2, 3))
